# frozen_string_literal: true

class GroupMentionsUpdater
  def self.update(current_name, previous_name)
    Post
      .where(
        "cooked LIKE '%class=\"mention-group%' AND raw LIKE :previous_name",
        previous_name: "%@#{previous_name}%",
      )
      .find_in_batches do |posts|
        posts.each do |post|
          post.raw.gsub!(/(^|\s)(@#{previous_name})(\s|$)/, "\\1@#{current_name}\\3")
          post.save!(validate: false)
        end
      end
  end
end
